//go:build wireinject
// +build wireinject

// The build tag makes sure the stub is not built in the final build.

package cmd

import (
	"github.com/go-kratos/kratos/v2"
	"github.com/go-kratos/kratos/v2/log"
	"github.com/google/wire"
	"hello-kratos/kratos-client/internal/biz"
	"hello-kratos/kratos-client/internal/conf"
	"hello-kratos/kratos-client/internal/data"
	"hello-kratos/kratos-client/internal/server"
	"hello-kratos/kratos-client/internal/service"
)

// wireApp init kratos application.
func wireApp(
	*conf.Server,
	*conf.Application,
	*conf.Data,
	*conf.Nacos_Registry,
	log.Logger,
) (*kratos.App, func(), error) {
	panic(wire.Build(
		server.ProviderServer,
		data.ProviderData,
		biz.ProviderBiz,
		service.ProviderService,
		newApp,
	))
}
